1. Field of the Invention
The present invention relates to a system for simultaneous transmission of data blocks or vectors between a memory and one or a number of data-processing units.
The invention is more particularly concerned with systems in which the data-processing units operate and execute programs asynchronously with respect to each other.
2. Description of the Prior Art
In known systems, the communication of data between a plurality of processing units which operate in parallel in order to execute the same program or different programs assumes a number of different forms which can be classed together under two general headings corresponding to two different operating modes. In a first mode designated by the acronym SIMD (Single-Instruction Multiple-Data Stream), data exchanges take place in a synchronous mode in which a single instruction sets a data rate for all the elementary processors. Enhancement of performances is obtained by causing a large number of processing units to carry out the same instruction. When using machines designed for operation in the SIMD mode, it is consequently possible to work on data tables or vectors instead of scalars. For example, a single instruction can carry out operations on several series of numbers belonging to one table.
In a second mode designated by the acronym MIMD (Multiple-Instruction Multiple-Data Stream), enhanced performances are obtained by carrying out a plurality of instructions belonging to different programs by means of different processing units, these instructions being executed simultaneously and on different data. However, the systems which operate in the MIMD mode are subject to many practical difficulties in regard to settlement of conflicts arising from access to data shared between all the processing units, in regard to efficient management of resources, synchronization mechanisms to be employed, and in regard to the management of concurrent processing tasks. These difficulties naturally lead to an appreciable falloff in performances.
Although the two SIMD and MIMD modes would appear a priori to be complementary, a comparison between these two techniques points to an apparent contradiction between the fact that the first system offers the possibility of achieving a higher data rate and the fact that the second system makes it possible to execute the maximum number of instructions. By making use of an MIMD system, the greatest possible benefit could in fact be derived from the parallel execution of a program if there did not exist any conflicts between the accesses to the common memory shared by the processing units. In contrast, although the SIMD systems appear to be more rigid in regard to sequencing of instructions since only identical operations can be performed simultaneously, the apparent constraint mentioned above is turned to useful account by these systems for the purpose of ensuring more effective parallel access to data.